package com.yiwenup.leetcode.hot;

/**
 * @PROJECT struct-algorithm
 * @PACKAGE com.yiwenup.leetcode.hot
 * @Author yiwenup
 * @Date 2022-02-19 18:07:47
 * <p>
 * @DESCRIPTION https://leetcode-cn.com/problems/hamming-distance/
 */
public class No0461 {

    /**
     * 执行用时：0 ms, 在所有 Java 提交中击败了100.00%的用户
     * 内存消耗：38 MB, 在所有 Java 提交中击败了23.81%的用户
     */
    public int hammingDistance(int x, int y) {
        int res = x ^ y;
        return Integer.bitCount(res);
    }

    /**
     * 执行用时：0 ms, 在所有 Java 提交中击败了100.00%的用户
     * 内存消耗：38.5 MB, 在所有 Java 提交中击败了6.24%的用户
     */
    public int hammingDistance2(int x, int y) {
        int res = x ^ y;
        int count = 0;

        for (int i = 0; i < 32; i++) {
            count += res & 1;
            res >>= 1;
        }

        return count;
    }
}
